package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 order
 * 
 * @author ruoyi
 * @date 2022-05-24
 */
@Getter
@Setter
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Integer id;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String userId;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNum;

    /** 盲盒id   /  出售的订单ID /积分商品id  /积分盒子id */
    @Excel(name = "盲盒id   /  出售的订单ID /积分商品id  /积分盒子id")
    private Long goodsId;

    /** 第几套商品 / -1代表积分兑换 或 抽奖 */
    @Excel(name = "第几套商品 / -1代表积分兑换 或 抽奖")
    private Long num;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    private BigDecimal total;

    /** 实际支付金额 */
    @Excel(name = "实际支付金额")
    private BigDecimal totalPrice;

    /** 盲盒金额 */
    @Excel(name = "盲盒金额")
    private BigDecimal price;

    /** 1 未支付  2 已支付并开箱 3 已完成 4 取消 */
    @Excel(name = "1 未支付  2 已支付并开箱 3 已完成 4 取消")
    private Integer status;

    /** 下单时间 */
    @Excel(name = "下单时间")
    private Integer addtime;

    /** 付款时间 */
    @Excel(name = "付款时间")
    private Integer payTime;

    /** 备注 */
    @Excel(name = "备注")
    private String message;

    /** 1微信 2 云闪付  */
    @Excel(name = "1微信 2 云闪付 ")
    private Integer payType;

    /** 订单类型 1 一发 2 五连发 3 十连发 4 全要 */
    @Excel(name = "订单类型 1 一发 2 五连发 3 十连发 4 全要")
    private Integer type;

    /** 使用余额金额 */
    @Excel(name = "使用余额金额")
    private BigDecimal money;

    /** 使用次元币金额 */
    @Excel(name = "使用次元币金额")
    private BigDecimal integral;

    /** 是否发放FIRST赏1发 2 否 */
    @Excel(name = "是否发放FIRST赏1发 2 否")
    private Integer isFirst;

    /** 是否发放LAST赏 1 发2 否 3一番赏（最后一个） */
    @Excel(name = "是否发放LAST赏 1 发2 否 3一番赏", readConverterExp = "最=后一个")
    private Integer isLast;

    /** 0未中奖 1 FIRST赏 2 LAST赏 */
    @Excel(name = "0未中奖 1 FIRST赏 2 LAST赏")
    private Integer isJiang;

    /** 完成时间 */
    @Excel(name = "完成时间")
    private Long overTime;

    /** 订单类型 1 下单流程 2 集市获得 3积分兑换 4 积分抽奖 */
    @Excel(name = "订单类型 1 下单流程 2 集市获得 3积分兑换 4 积分抽奖")
    private Integer orderType;

    /** 优惠券id */
    @Excel(name = "优惠券id")
    private Integer couponId;

    /** 优惠券金额 */
    @Excel(name = "优惠券金额")
    private BigDecimal couponMoney;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer wxIs;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long creator;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createDate;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("orderNum", getOrderNum())
            .append("goodsId", getGoodsId())
            .append("num", getNum())
            .append("total", getTotal())
            .append("totalPrice", getTotalPrice())
            .append("price", getPrice())
            .append("status", getStatus())
            .append("addtime", getAddtime())
            .append("payTime", getPayTime())
            .append("message", getMessage())
            .append("payType", getPayType())
            .append("type", getType())
            .append("money", getMoney())
            .append("integral", getIntegral())
            .append("isFirst", getIsFirst())
            .append("isLast", getIsLast())
            .append("isJiang", getIsJiang())
            .append("overTime", getOverTime())
            .append("orderType", getOrderType())
            .append("couponId", getCouponId())
            .append("couponMoney", getCouponMoney())
            .append("wxIs", getWxIs())
            .append("creator", getCreator())
            .append("createDate", getCreateDate())
            .toString();
    }
}
